package com.njtoyo.netrides.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author Dell
 * @Date 2018/10/11 16:57
 */
@Entity
@Table(name = "recharge")
@Data
@Accessors(chain = true)
public class Recharge implements Serializable {

    /**
     * 主键
     */
    @Id
    @Column(name = "id", nullable = false)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 用户ID
     */
    private Long customerId;

    /**
     * 支付方式
     * 0 - 未知 1 - 现金 2 - 线上 3 - 微信小程序 4 - 微信 5 - 阿里 6 - 余额
     */
    @Enumerated
    private Znum.PayThrough payMethod;

    /**
     * 到账金额 举例：1000
     */
    private Double amount;

    /**
     * 创建时间
     */
    private Date createdAt;

    /**
     * 修改时间
     */
    @JsonIgnore
    private Date updatedAt;

    /**
     * 支付时间
     */
    private Date LastPayTime;

    /**
     * 充值状态
     */
    @Enumerated
    private Znum.OState state;

    /**
     * 自定义交易号
     */
    private String outTradeNo;

    /**
     * 实付金额 举例：900
     */
    private Double payAmount;

    /**
     * 操作模式（add - 增加，reduct - 减少）
     */
    @Enumerated
    private Znum.OperationMode operationMode;

    /**
     * 支付模式(0-充值,1-车费支付,2-罚金支付)
     */
    @Enumerated
    private Znum.RechargePayMode payMode;

    /**
     * 支付渠道商订单号
     */
    private String tradeNo;

    /**
     * 营销活动赠送金额
     */
    private BigDecimal donationAmount;

}
